#ifndef _PILE
#define _PILE

#include "element.h" 
#include "TableauDynamique.h" 


typedef Tab_Dynamique Pile;


void initialiserPile(Pile * P);
/* Precondition : *P non prealablement initialisee
   Postcondition : *P initialisee en Pile vide, les compteurs
   sont initialises a 0 */


void testamentPile(Pile * P);
/* Precondition : *P prealablement initialisee
   Postcondition : *P prete a disparaitre (ne doit plus etre utilisee) */


unsigned int getNbItemsDansPile(const Pile * P);
/* Precondition : *P initialisee
   Resultat : retourne le nombre d'items presents dans la Pile *P */

void emPiler(Pile * P, Elem e);
/* Precondition : *P et e prealablement initialises
   Postcondition : e ajoutee au sommet de Pile */

void dePiler(Pile * P);
/* Precondition : *P initialisee et non vide
   Postcondition : l'element de tete de *P est supprime */

Elem sommetDeLaPile(const Pile * P);
/* Precondition : P initialisee et non vide
   Resultat : l'adresse qui se trouve en tete de P*/

int testPileVide(const Pile * P);
/* Precondition : P initialisee
   Resultat : 1 si P est vide, 0 sinon */


#endif
